package chapter07.s02bytestream.p01inputstream;

import java.io.FileInputStream;
import java.io.InputStream;

/**
 * 使用 try…finally 确保关闭 InputStream
 *
 * 如果读取过程中发生了IO错误，InputStream就无法正常关闭，资源也无法及时释放。
 * 使用try…finally 在无论是否发生IO错误的时候都能够正确关闭。
 */
public class Example09 {
    public static void main(String[] args) throws Exception {
        InputStream input = null;
        try {
            // 创建一个文件字节输入流
            FileInputStream in = new FileInputStream("src/chapter07/test.txt");
            int b = 0;           // 定义一个int类型的变量b，记住每次读取的一个字节
            while (true) {
                b = in.read(); // 变量b记住读取的一个字节
                if (b == -1) { // 如果读取的字节为-1，跳出while循环
                    break;
                }
                System.out.println(b); // 否则将b写出
            }
        } finally {
            if (input != null) {
                input.close();
            }
        }
    }
}
